﻿using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Prueba01
{
    public class PanaderiaService : IPanaderiaService
    {
        public IPanaderiaRepository _panaderiaReposity
        {
            get;
            set;
        }
        public int PrimerPedido = 0;
        //public int SegundoPedido= 350;
        public int AumentarUno= 300;
       // public int AumentarDos = 0;
        public int NoPedido = 0;
        public int PanesHechos = 0;
        public int ContadorUno = 400;
        public int ContadorDos = 0;
        public int[,] AlmacenValor = new int[,] { { 400 }, { 450 } };
        //public int[,] Horno = new int[,] { { }, { } };
        public int AlmacenUno(Panaderia ventaUna)
        {
            var resta =  ventaUna.Pan1;
            return ContadorUno = AlmacenValor[0, 0] - resta;
        }
        public int AlmacenDos(Panaderia ventaDos)
        {
            var resta = ventaDos.Pan2;
          return ContadorDos = AlmacenValor[1, 0] - resta;
        }
        public int PedidoUno(Panaderia pedidoUno)
        {
            var suma = AumentarUno ;
            return PrimerPedido =  ContadorUno + suma;
        }
       // public int PedidoDos(Panaderia pedidoDos)
       // {
        //    var suma = AumentarUno;
       //     return PrimerPedido = ContadorDos + suma;
       // }
        public int RealizarUno(Panaderia realizarUno)
        {
            //var Pedido = pedido.Pan1;
            if (ContadorUno <= 100 )
            {
                Trace.WriteLine("Relizar pedido de Pan1");
                return ContadorUno = ContadorUno + AumentarUno;
            }else 
            {
                Trace.WriteLine("No hace falta realizar el pedido de  Pan1");
                return  ContadorUno;
            }

            //return AlmacenValor[];
        }
         public Panaderia Create(Panaderia venta)
         {
             if (venta.Pan1 > 0 && venta.Pan1 < ContadorUno && venta.Pan2 >0 && venta.Pan2 < ContadorDos)
            {                               
                Trace.WriteLine("Pude vender panes de los dos tipos" );
                return _panaderiaReposity.Create(venta);
            }
             else if (venta.Pan1 > 0 && venta.Pan1 < ContadorUno)
             {
                 Trace.WriteLine("Pude vender panes ssolo de pan uno");
                 return _panaderiaReposity.Create(venta);
             }
             else if (venta.Pan2 > 0 && venta.Pan2 < ContadorDos)
             {
                 Trace.WriteLine("Pude vender panes ssolo de pan dos");
                 return _panaderiaReposity.Create(venta);
             }
             else
             {
                 Trace.WriteLine("No puede vender panes");
             }
            return venta;
        }
         public Panaderia Read(long venta)
         {
             return _panaderiaReposity.Read(venta);
         }
        public IList<Panaderia> List()
        {
            return _panaderiaReposity.List();
        }

    
}
}
